﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using ProntuarioEletronicoMobile.Repositorio;
using ProntuarioEletronicoMobile.Banco;
using Microsoft.Phone.Tasks;

namespace ProntuarioEletronicoMobile
{
    public partial class Compartilhar : PhoneApplicationPage
    {
        const string strConnectionString = @"isostore:/MedicoDB.sdf";

        Medico medico_selecionado = null;
        Paciente paciente_selecionado = null;

        private int id_paciente;

        public Compartilhar()
        {
            InitializeComponent();
        }

        // When page is navigated to set data context to selected item in list
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            string paciente_id = "";
            if (NavigationContext.QueryString.TryGetValue("paciente_id", out paciente_id))
            {
                id_paciente = int.Parse(paciente_id);
            }
        }

        private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
        {
            PacienteDataContext paciente_db = new PacienteDataContext(@"isostore:/PacienteDB.sdf");

            paciente_selecionado = paciente_db.CarregarPaciente(id_paciente).ElementAt<Paciente>(0);
        }

        private void lbResultado_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            // If selected index is -1 (no selection) do nothing
            if (lbResultado.SelectedIndex == -1)
                return;

            medico_selecionado = (Medico)lbResultado.SelectedItem;

            MessageBoxResult resultado =
                MessageBox.Show("Deseja compartilhar o prontuário com o Dr " + medico_selecionado.NomeMedico + "?", "Compartilhar?", MessageBoxButton.OKCancel);

            if (resultado == MessageBoxResult.OK)
            {
                EmailComposeTask email = new EmailComposeTask();
                email.To = medico_selecionado.EmailMedico;
                email.Subject = "Prontuário Eletrônico - Paciente " + paciente_selecionado.NomePaciente;
                email.Body = @"Prezado Dr. " + medico_selecionado.NomeMedico + ", \n" +
                "peço que analise o caso do paciente " + paciente_selecionado.NomePaciente + ", CPF: " + paciente_selecionado.CpfPaciente + ".\n" +
                "Grato, pela ajuda e atenção.";
                email.Show();
            }

            // Reset selected index to -1 (no selection)
            lbResultado.SelectedIndex = -1;
        }

        private void btBuscar_Click(object sender, RoutedEventArgs e)
        {
            string busca_medico = txtBuscaMedico.Text;

            MedicoDataContext medico_DC = new MedicoDataContext(strConnectionString);

            IList<Medico> lista_medicos = medico_DC.GetListaMedicos(busca_medico);

            if (lista_medicos.Count > 0)
            {
                lbResultado.ItemsSource = lista_medicos;
            }
            else
            {
                MessageBox.Show("Nenhum Registro Encontrado.\nPor Favor, Refaça Sua Busca.", "Atenção!", MessageBoxButton.OK);
            }
        }
    }
}